package proyectoX.src.municiones;

import java.awt.Point;
import java.awt.Rectangle;

import javax.swing.ImageIcon;

import proyectoX.src.aplicacion.Nivel;
import proyectoX.src.armas.arma;

/**
 * Corresponde a la bola de energía grande que dispara la nave Jefe.
 *
 */
public class MunicionJefe extends MunicionEnemiga {
	
	protected int despX;
	
	/**
	 * Crea a la munición con los datos pasados por parámetro.
	 * @param posX Posición x.
	 * @param posY Posición y.
	 * @param e Arma que la dispara.
	 * @param nivel Nivel actual.
	 * @param dx Desplazamiento horizontal
	 */
	public MunicionJefe(int posX, int posY, arma e, Nivel nivel, int dx) {
		super(e,nivel,24);
		despX = dx;
		ImageIcon image = new ImageIcon(this.getClass().getResource("/proyectoX/sprites/disparo_jefe.gif"));			
		this.setIcon(image);
		this.setVisible(true);
		this.setSize(image.getIconWidth(), image.getIconHeight());		
		this.setLocation(posX, posY);		
	}


	/**
	 * Acomoda su posición dependiendo de su velocidad y desplazamiento horizontal.
	 */
	public void actualizarPosicion() {
		if(!nivel.NivelCongelado()){
			Point position = this.getLocation();
			position.translate(despX,velocidad);
			this.setLocation(position);
		}
	}

	/**
	 * Devuelve el área de colisión de la munición. En este caso es nula porque no colisiona.
	 * @return Área de colisión.
	 */
	public Rectangle getBounds() {
		return new Rectangle(this.getX()+17, this.getY()+17, 70, 70);
	}

	/**
	 * Pide a nivel que calcule colisiones con la nave jugadora.
	 * @return Verdadero si colisionó, falso en caso contrario.
	 */
	public boolean calcularColisiones() {
		return nivel.calcularColisionConPrincipal(this);
	}
}
